package org.jeecg.modules.analysis.graph.entity;

import lombok.Data;
import lombok.experimental.Accessors;
import io.swagger.v3.oas.annotations.media.Schema;
import org.jeecg.modules.demo.patent.entity.Patent;

import java.io.Serializable;
import java.util.List;

/**
 * @Description: 专利图谱节点实体
 * @Author: jeecg-boot
 * @Date: 2025-01-10
 */
@Data
@Accessors(chain = true)
@Schema(description="专利图谱节点")
public class Graph implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 专利ID（对应 Patent.id） */
    @Schema(description = "专利ID")
    private String id;

    /** 发明名称(中文)（对应 Patent.zhName） */
    @Schema(description = "发明名称(中文)")
    private String zhName;

    /** 发明名称(源文)（对应 Patent.originName） */
    @Schema(description = "发明名称(源文)")
    private String originName;

    /** 申请号（对应 Patent.applyId） */
    @Schema(description = "申请号")
    private String applyId;

    /** 申请机构名称（中文）（对应 Patent.applyInstitutionZhName） */
    @Schema(description = "申请机构名称（中文）")
    private String applyInstitutionZhName;

    /** 发明人名称（中文）（对应 Patent.inventorZhName） */
    @Schema(description = "发明人名称（中文）")
    private String inventorZhName;

    /** 发明人列表（DTO扩展字段，用于前端展示） */
    @Schema(description = "发明人列表")
    private List<String> inventorList;

    /** 申请日（对应 Patent.applyDate） */
    @Schema(description = "申请日")
    private String applyDate;

    /** 申请公布日（对应 Patent.applyPublicDate） */
    @Schema(description = "申请公布日")
    private String applyPublicDate;

    /** IPC分类号（对应 Patent.ipcClassId） */
    @Schema(description = "IPC分类号")
    private String ipcClassId;

    /** 技术领域（DTO扩展字段） */
    @Schema(description = "技术领域")
    private String technology;

    /** 法律状态（DTO扩展字段） */
    @Schema(description = "法律状态")
    private String legalStatus;

    /** 摘要（源文）（对应 Patent.summary） */
    @Schema(description = "摘要（源文）")
    private String summary;

    /** 摘要（中文）（对应 Patent.summaryZh） */
    @Schema(description = "摘要（中文）")
    private String summaryZh;

    /** 文件（对应 Patent.fileString） */
    @Schema(description = "文件")
    private String fileString;

    /** 关联度（0-1之间的小数）（DTO扩展字段） */
    @Schema(description = "关联度")
    private Double relationValue;

    /** 是否为核心专利 */
    @Schema(description = "是否为核心专利")
    private Boolean isCore;
}

